/*
 * @Author: zhangzhengzhe
 * @Date: 2019-09-02 15:57:50
 * @LastEditors: zhangzhengzhe
 * @LastEditTime: 2019-09-16 15:46:23
 */

const config = require('./../../config/config')
const mongoose = require('mongoose')
// 连接数据库：[ip/域名]:[端口号(默认27017)]/[数据库(db)]
// mongoose.connect(config.mongo.url, { useNewUrlParser: true },  (err, connection) => {
//   if (err) {
//     console.log(err) 
//     throw new Error('链接失败.....因为你长得丑')
//   }
//   connection.db.collections().then(res => {
//     const collections = res.map(function (collection) {
//         return collection.collectionName;
//     })
//     console.log(collections )
//   }).catch(err=>{
//       console.log(err)
//   })
//   // console.log('链接成功啦.....')
// })

// module.exports = mongoose

// class DB {
//   constructor() {
//     try{
//       this.mongo = mongoose.createConnection(config.mongo.url, { useNewUrlParser: true })
//     } catch(err) {
//       console.log("创建数据库链接错误:", e)
//       throw new Error('链接失败.....因为你长得丑')
//     }
//   }
// }
// module.exports = new DB()

module.exports = {
  DB: async() => {
    try {
      mongoose.connect(config.mongo.url, { config: { autoIndex: false } })
      const con = mongoose.connection()
      con.on('error', console.error.bind(console, '数据库连接失败'))
      con.on('open', () => {
        console.log('数据库连接成功')
      })
    } catch (error) { 
      throw new Error(`失败信息 ===> ${JSON.stringify(error)}`)
    }
  }
}